import requests
import time

from bs4 import BeautifulSoup as bs

import timecalc


urlSteamFriendsAll = 'https://steamcommunity.com/id/sartalnik/friends/'

responseSteamFriendsAll = requests.get(urlSteamFriendsAll)

lxmlSteamFriendsAll = bs(responseSteamFriendsAll.text, 'lxml')

gamerSteamAccountInfo = lxmlSteamFriendsAll.find('div', id='fr_345244468')
gamerStatusNow = ''

if "online" in str(gamerSteamAccountInfo):
    gamerStatusNow = 'online'

elif "in-game" in str(gamerSteamAccountInfo):
    gameStartingNow = gamerSteamAccountInfo.find('span', class_='friend_small_text').text
    
    for gameNameSymbol in range(1, len(gameStartingNow)):
        gamerStatusNow += gameStartingNow[gameNameSymbol]
        

elif "offline" in str(gamerSteamAccountInfo):
    gamerStatusNow = 'offline'

elif "sleep" in str(gamerSteamAccountInfo):
    gamerStatusNow = 'sleep'

else:
    gamerStatusNow = 'error'

logFile = open('/home/wi/py/scriping/dchecker.log', 'r')
logSavedAll = logFile.readlines()
logFile.close()

logSavedLast = ''

if logSavedAll != []:
    logSavedLast = logSavedAll[len(logSavedAll)-1]

if gamerStatusNow not in logSavedLast:

    logFile = open('/home/wi/py/scriping/dchecker.log', 'a')
    logSavedNew =  time.ctime() + ' ' + gamerStatusNow + '\n'
    logFile.write(logSavedNew)
    logFile.close()

print(gamerStatusNow)

##############################################################

# Число последнего захода в игру
logDateLastDay = logSavedLast.split()[2]   

# Сохраненные логи в день последнего захода
logSavedLastDay = []

# Наполнение массива логами
for log in range(len(logSavedAll)):
    if logDateLastDay == logSavedAll[log].split()[2]:
        logSavedLastDay.append(logSavedAll[log])

# Время заходов в игру
logTimeLastDayInGame = [] 
# Время выходов из игры
logTimeLastDayNotGame = []

# Наполнение массивов времени
for log in range(len(logSavedLastDay)):     
    if "Team Fortress" in logSavedLastDay[log]:         # Временное решение
        logTimeLastDayInGame.append(logSavedLastDay[log].split()[3])
        try:
            logTimeLastDayNotGame.append(logSavedLastDay[log+1].split()[3])
        except IndexError:  
            # Если сейчас в игре
            logTimeLastDayNotGame.append(time.ctime().split()[3])

# Сумма нахождения в игре за день
sumTimeInGameToday = [0, 0]
# Сумма одной игровой сессии
timeGameSession = []    

# Вычисление суммы игр
for time in range(len(logTimeLastDayInGame)):  

    # Часы и минуты в игре и вне игры
    hourInGame = int(logTimeLastDayInGame[time][0] + logTimeLastDayInGame[time][1])  
    minuteInGame = int(logTimeLastDayInGame[time][3] + logTimeLastDayInGame[time][4])
    hourNotGame = int(logTimeLastDayNotGame[time][0] + logTimeLastDayNotGame[time][1])
    minuteNotGame = int(logTimeLastDayNotGame[time][3] + logTimeLastDayNotGame[time][4])

    # Поочередное вычисление игровых сессий
    timeGameSession = timecalc.different(hourInGame, minuteInGame, hourNotGame, minuteNotGame)

    # Суммирование текущей сессии с общей суммой
    sumTimeInGameToday = timecalc.summ(*sumTimeInGameToday, *timeGameSession)
                                          


if len(str(sumTimeInGameToday[1])) == 1:
    # Добавление нуля перед одинарным стеком минуты
    printSumTimeInGameToday = str(sumTimeInGameToday[0]) + ':' + '0' + str(sumTimeInGameToday[1])
else:  
    printSumTimeInGameToday = str(sumTimeInGameToday[0]) + ':' + str(sumTimeInGameToday[1])     #human version 

# Дополнительный принт, чтобы не мешалось в апплете   
print()
# print('Today in game', printSumTimeInGameToday, sep=' - ')
